Instant messaging (IM) enables a user to send and receive messages to and from other users in real time. A first user has an IM client software application that runs on his computer. When the first user is online, by being connected to a network such as the Internet, the IM client application opens a connection to an IM server. The IM client application sends a user identification and password to log onto the IM server. The IM server uses a communication protocol that allows for IM functionality.
The IM client application includes a contact list, which is a list of other users that the first user wishes to have the ability to send messages to. When the users identified in the contact list come online and log on to the IM server, the first user is notified so that messages can be sent and received. A message is sent to the IM server, which then routes the message to the identified user. In some implementations of IM systems, messages are sent directly between the IM client applications and the IM server is not involved in the transfer of messages.
IM applications are used primarily for text based chats, screen sharing, white-boarding and so on. In the case of a text based chat, the IM client application has a graphical user interface which provides a small window on the user's computer display for each chat that the user is having with his contacts. The window displays a scrolling dialogue of the chat between the first user and his contact.
Participating in an IM session is something busy people often do in parallel with performing other tasks. Such other tasks may include conducting additional IM sessions with other people, reading/authoring documents, programming, or any other activity. When another activity is being performed using a user's computer display, an IM window is out of focus.
IM applications support visual and/or audio notification to let the user know if a new message has arrived to an IM window that is out of focus.
A considerable amount of chat messages are actually predictable. This is especially true at the end of a chat, when departing “protocols” often require messages of the form “thanks”, “no problem”, “bye”, “bfn” (short for “bye for now”), etc.
For a busy user, receiving the usual notification for an unfocused window indicating a new message has arrived means that the user has to refocus on the window in order to read the message. This is unnecessarily time consuming and annoying when a user refocuses on the window and sees only the final “bfn”. However, choosing to not turn to that window if the user assumes it is just a “bye” may end up in the user missing an important message that the other party has added to the end of the chat.